package studia.figlewicz.math.test;

import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

import studia.figlewicz.math.library.*;



public class _cwiczenia {
	
	public static void main(String[] args) {


		Date dzienWyplaty = new Date(2010,01,01);
		
		// utworz przeplywy pieniezne
//		PrzeplywPieniezny p1 = new PrzeplywPewny(dzienWyplaty, new Float(100));
//		PrzeplywPieniezny p2 = new PrzeplywWalutowy(dzienWyplaty, new Float(100));
//		PrzeplywOpcyjnyEuropejski p3 = new PrzeplywOpcyjnyEuropejski(dzienWyplaty, new Float(100));
//		p3.setStrike(new Float(100));
//		PrzeplywOpcyjnyEuropejski p4 = new PrzeplywOpcyjnyEuropejski(dzienWyplaty, new Float(100));
//		p4.setStrike(new Float(100));
//		p4.setTyp(TypOpcji.PUT);
//		PrzeplywOpcyjnyAmerykanski p5 = new PrzeplywOpcyjnyAmerykanski(dzienWyplaty, new Float(100));
//		p5.setStrike(new Float(100));
//		PrzeplywOpcyjnyAmerykanski p6 = new PrzeplywOpcyjnyAmerykanski(dzienWyplaty, new Float(100));
//		p6.setStrike(new Float(100));
//		p6.setTyp(TypOpcji.PUT);
//		PrzeplywOpcyjnyBermudzki p7 = new PrzeplywOpcyjnyBermudzki(dzienWyplaty, new Float(100));
//		p7.setStrike(new Float(100));
//		PrzeplywOpcyjnyBermudzki p8 = new PrzeplywOpcyjnyBermudzki(dzienWyplaty, new Float(100));
//		p8.setStrike(new Float(100));
//		p8.setTyp(TypOpcji.PUT);
//		
//		
//		Map<String, TrajektoriaProcesu> projekcje = new HashMap<String, TrajektoriaProcesu>();
//		TrajektoriaProcesu proj1 = new TrajektoriaProcesu();
//		Date day0 = new Date(dzienWyplaty.getTime());
//		Date day_1 = new Date(dzienWyplaty.getTime()-Utils.getDayMiliseconds(1));
//		Date day1 = new Date(dzienWyplaty.getTime()+Utils.getDayMiliseconds(1));
//		proj1.dodajPunktTrajektorii(new PunktTrajektorii(day_1,new Float(40)));
//		proj1.dodajPunktTrajektorii(new PunktTrajektorii(day0,new Float(50)));
//		proj1.dodajPunktTrajektorii(new PunktTrajektorii(day1,new Float(10)));
//		
//		TrajektoriaProcesu proj2 = new TrajektoriaProcesu();
//		proj2.dodajPunktTrajektorii(new PunktTrajektorii(day_1,new Float(10)));
//		proj2.dodajPunktTrajektorii(new PunktTrajektorii(day0,new Float(20)));
//		proj2.dodajPunktTrajektorii(new PunktTrajektorii(day1,new Float(30)));
//		
//		projekcje.put(Stale.PRZEPLYW_WALUTOWY_IP_KURS_WALUTY, proj1);
//		projekcje.put(Stale.PRZEPLYW_OPCYJNY_EUROPEJSKI_IP_CENA_INSTRUMENTU, proj1);
//		projekcje.put(Stale.PRZEPLYW_OPCYJNY_AMERYKANSKI_IP_CENA_INSTRUMENTU, proj1);
//		projekcje.put(Stale.PRZEPLYW_OPCYJNY_BERMUDZKI_IP_CENA_INSTRUMENTU, proj1);
//		
//		
//		float wynik1 = p1.obliczWyplate(projekcje); System.out.println(wynik1);
//		float wynik2 = p2.obliczWyplate(projekcje); System.out.println(wynik2);
//		float wynik3 = p3.obliczWyplate(projekcje); System.out.println(wynik3);
//		float wynik4 = p4.obliczWyplate(projekcje); System.out.println(wynik4);
//		Set<Date> daty = new HashSet<Date>();
//		daty.add(day_1);
//		daty.add(day0);
//		daty.add(day1);
//		p5.setDatyWykonania(daty);
//		float wynik5 = p5.obliczWyplate(projekcje); System.out.println(wynik5);
//		p6.setDatyWykonania(daty);
//		float wynik6 = p6.obliczWyplate(projekcje); System.out.println(wynik6);
//		p7.setDatyWykonania(daty);
//		float wynik7 = p7.obliczWyplate(projekcje); System.out.println(wynik7);
//		Set<Date> daty2 = new HashSet<Date>();
//		daty2.add(day_1);
//		daty2.add(day0);
//		p8.setDatyWykonania(daty2);
//		float wynik8 = p8.obliczWyplate(projekcje); System.out.println(wynik8);
		
	}
}
